"use strict";
var fun;
(function (fun) {
    // 如果函数的某个参数可以省略，则在参数名后面加问号表示
    // ，参数x是可选的，等同于说x可以赋值为undefined。
    function f(x) {
        // ...
    }
    f(); // OK
    f(10); // OK
    f(undefined); // 正确
    // 反过来就不成立，类型显式设为undefined的参数，就不能省略。
    function fe(x) {
        return x;
    }
    // fe();//报错
    // 函数的可选参数只能在参数列表的尾部，跟在必选参数的后面。
    // let myFunc: (a?: number, b: number) => number; // 报错
    // 参数的默认值    可选参数与默认值不能同时使用。  last?:string='名'   函数参数也存在只读 只用于数组和元祖
    function FullName(first, last = "名") {
        // first[0]='56' 报错只读
    }
    FullName(["姓"]);
    function ggg(first, second) {
        if (second) {
            return first + second;
        }
        else {
            return first;
        }
    }
})(fun || (fun = {}));
